﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Aeroporto.modelo;
using Aeroporto.bd;
using System.Data;
using System.Collections;
using System.Windows.Forms;

namespace Aeroporto.controle
{
    class VooControl
    {
        private VooDAO bd_voo = new VooDAO();

        public DataTable lista_dados(string tabela)
        {
            DataTable dataTable = new DataTable();
            try
            {
                dataTable = bd_voo.lista_dados(tabela);
            }
            catch(Exception e)
            {
                Arquivo.escrever(e.ToString());
            }
            return dataTable;
        }

        public DataTable pesquisar_siglas(string nome)
        {
            DataTable dataTable = new DataTable();
            try
            {
                dataTable = bd_voo.pesquisar("voo", "sigla_comp", nome);
            }
            catch (Exception e)
            {
                Arquivo.escrever(e.ToString());
            }
            return dataTable;
        }

        public MyMessageBox valida_voo(string siglaComp, string numVoo)
        {
            if (siglaComp == "" || numVoo == "")
            {
                return new MyMessageBox("Preencha todos os campos", "Campo em branco");
            }
            else
            {
                if (bd_voo.existe_registro_voo("voo", "sigla_comp", "num_voo", siglaComp, numVoo) == true)
                {
                    return new MyMessageBox("Registro já existe", "Trecho já existe");
                }
                else
                {
                    return null;
                }
            }
        }

        public MyMessageBox valida_insert_voo(string siglaComp, string numVoo)
        {
            MyMessageBox mb = valida_voo(siglaComp, numVoo);
            if (mb != null)
            {
                return mb;
            }
            else
            {
                string t_siglaComp = siglaComp, t_numVoo = numVoo;
                IGenericModel generic_model = new VooModel(t_siglaComp, t_numVoo);
                if (bd_voo.gravar_dados(generic_model))
                {
                    mb = new MyMessageBox("Voo cadastrado!", "Cadastrado");
                }
                else
                {
                    mb = new MyMessageBox("Erro no cadastro!", "Erro");
                }
                return mb;
            }
        }

        public MyMessageBox excluir_voo(ArrayList siglaComp, ArrayList numVoos)
        {
            return bd_voo.excluir_voo("voo","sigla_comp","num_voo",siglaComp,numVoos);
        }

        public MyMessageBox valida_update_voo(string siglaComp, string numVoo, string siglaComp_antigo)
        {
            if (siglaComp == "" || numVoo == "")
            {
                return new MyMessageBox("Preencha todos os campos", "Campo não preenchido");
            }
            else
            {
                if (siglaComp_antigo != siglaComp)
                {
                    return new MyMessageBox("A sigla da Companhia não pode ser alterado", "Erro");
                }
                VooModel voo = new VooModel(siglaComp,numVoo);
                if (bd_voo.update_dados(voo))
                {
                    return new MyMessageBox("Voo atualizada!", "Voo");
                }
                else
                {
                    return new MyMessageBox("Erro ao atualizar", "Erro");
                }
            }
        }
    }
}
